// var robot = function(command, obstacles, x, y) {
//     let cx=0,cy=0;
//     let i=0;
//     let n=command.length;
//     let obMap=new Map(Array.from(obstacles.entries()).map(([k,v]) => [v[0].toString()+" "+v[1].toString(),k]));
//     console.log(obMap);
//     while(true){
//         console.log(cx,cy);
//         if(command[i]=="U"){
//             cy++;
//         }
//         else{
//             cx++;
//         }
//         if(obMap.has(cx.toString()+" "+cy.toString())){
//             return false;
//         }
//         if(cx==x&&cy==y){
//             return true;
//         }
//         i= i==n-1 ? 0:i+1; 
//     }    
// };

// console.log(robot("URR",[[2,2]],3,2));


/**
 * @param {string} command
 * @param {number[][]} obstacles
 * @param {number} x
 * @param {number} y
 * @return {boolean}
 */
 var robot = function(command, obstacles, x, y) {
    let uc=0,rc=0;
    Array.from(command).forEach(e => {
        rc+= e=="R" ?  1:0;
        uc+= e=="U" ?  1:0;
    });
    function judge(r,u){
        let us=Math.floor(u/uc),rs=Math.floor(r/rc);
        if(Math.abs(us-rs)>1){
            return false;
        }
        let min=Math.min(us,rs);
        let ul=u-uc*min,rl=r-rc*min;
        let cx=0,cy=0;
        if(ul==0&&rl==0){
            return true;
        }
        for(let c of command){
            if(c=="U"){
                cy++;
            }
            else{
                cx++;
            }
            if(cy==ul&&cx==rl){
                return true;
            }
        }
        return false;
    }
    if(!judge(x,y)){
        return false;
    }
    for(let [tx,ty] of obstacles){
        if(judge(tx,ty)&&tx<=x&&ty<=y){
            return false;
        }
    }
    return true;
};


// 执行用时：
// 92 ms
// , 在所有 JavaScript 提交中击败了
// 60.00%
// 的用户
// 内存消耗：
// 39.6 MB
// , 在所有 JavaScript 提交中击败了
// 50.00%
// 的用户